$(document).ready(init_manual)

/*funcion que se ejecuta cuando carga de la pagina*/
function init_manual(){
    //cargar_manual();
    $("#nuevaManualBtn").button({
                        icons: {
                            primary: 'ui-icon-plusthick'
                        }
                    });

    $("#buscarBtn").button({
                        icons: {
                            primary: 'ui-icon-search'
                        },
                        text: false
                    });

    $("#clearBtn").button({
                        icons: {
                            primary: 'ui-icon-arrowthick-1-w'
                        },
                        text: false
                    });
                    
                    $("#ayudaBtn").button({
                        icons: {
                            primary: 'ui-icon-help'
                        },
                        text: false
                    });
   
   $("#id_manual_base").load("/salus/AdministrarServlet", {op:"-7"});
   
    $("#nuevaManualBtn").click(function(){
        
        clear_form_elements($("#formManual"));
        
        mostrar_campos({
            id:"",
            codigo:"",
            descripcion:"",
            id_manual_base:"",
            op:"nuevo"
        });

        formularioManual();
    })


   $("#formManual").validate({
        rules:{            
            codigo:{
                required:true
            },
            descripcion:{
                required:true
            }
        }
    })

    $("#buscarBtn").click(buscar_manual);
    $("#clearBtn").click(limpiarBusqueda);
    
    $("#buscarCod").keypress(function(ev){
        if(ev.keyCode==13){       
               buscar_manual()
        }
        })
    $("#buscarDes").keypress(function(ev){
        if(ev.keyCode==13){       
               buscar_manual()
        }
        })
    
    $("#buscarCod").keyup(function(){$("#buscarDes").val("");})
    $("#buscarDes").keyup(function(){$("#buscarCod").val("");})
    
    /*AYUDA*/
         $('#ayudaBtn').qtip({
                           content: '<b style="color:red">*</b> Para editar un manual, haga doble click sobre el registro seleccionado<br /><b style="color:red">*</b> Para buscar un registro utilice los campos del pie de cada columna',
                           show: 'mouseover',
                           hide: 'mouseout',style: {
                              name: 'cream', 
                              border: {
                                 width: 3,
                                 radius: 8                                         
                              },
                              width: 200,
                              tip: { // Now an object instead of a string
                                     corner: 'topRight', // We declare our corner within the object using the corner sub-option
                                     color: 'orange',
                                     size: {
                                        x: 20, // Be careful that the x and y values refer to coordinates on screen, not height or width.
                                        y : 8 // Depending on which corner your tooltip is at, x and y could mean either height or width!
                                     }
                            }
                        },
                        position: {
                          corner: {
                             target: 'bottomLeft',
                             tooltip: 'topRight'
                          },
                          container: $('div.tooltips')                          
                       }
                    })
}


/*Muestra el dialogo para capturar los datos de la tabla*/
function formularioManual(){
    $("#manual-form").dialog({
			height: 450,
                        width: 600,
			modal: true,
                        title:"Manual",
			buttons:{
                            "Cancelar":function(){
                                $(this).dialog("close")
                            },
                            "Guardar":
                                
                                function(){
                                if($("#op").val()=='nuevo'){
                                    validarNumero()
                                }else{
                                    guardar_manual()
                                }                              
                                
                            }
                                
                                
                                
                        }
        		});
}


/*Guarda los datos de la tabla*/
function guardar_manual(){
    
if ($("#formManual").valid()){
var form = $("#formManual");
var op=$("#op").val()+"_manual";

var formLocal={
            id:$("#id").val(),
            codigo:$("#codigo").val(),
            descripcion:$("#descripcion").val()
        };
 $.ajax({
        type:'POST',
        url:'/salus/AdministrarSetServlet',
        data:form.serialize()+"&op="+op,
        success:function(data) {

        var resp = data.split("_");

        if(resp[0] == "editar" ){                
               edit_manual(formLocal)
               $("#manual-form").dialog("close")
               window.location.reload();
           }else {                
               add_manual(formLocal)
               $("#manual-form").dialog("close")
               window.location.reload();
           }
           
        
       
        }
    });
    }
}


/*Actualiza los datos en la grilla, despues de actualizar los datos*/
function edit_manual(manual){
    $("#manual-"+manual.id+"-descripcion").text(manual.descripcion)
    $("#manual-"+manual.id+"-codigo").text(manual.codigo)
}


/*Crea dinamicamente la grilla, dependiendo de la respuesta de la base de datos in(json)*/
function add_manual(manual){
    var tbody=$("#tabla-manual-body")
    var tr=$("<tr/>").attr("id","manual-"+manual.id).appendTo(tbody);
    $("<td/>").appendTo(tr).append(manual.codigo).attr("id","manual-"+manual.id+"-codigo");
    $("<td/>").appendTo(tr).append(manual.descripcion).attr("id","manual-"+manual.id+"-descripcion");

    var aBorrar=$("<a/>").text("Borrar").addClass("borrar").attr("href","#").click(function(){
        if (confirm("¿Desea borrar este manual?")){
            $.post("set_data.php",{
                op:"borrar_asignatura",
                id:manual.id
            },function(data){
                var resp=JSON.parse(data);
                if (resp.estado=="OK"){
                    $("#manual-"+manual.id).remove();
                }
            }
            )
        }
        return false;
    })

    var aEditar=$("<a/>").text("Editar").addClass("editar").attr("href","#").click(function(){
        $.getJSON("/salus/AdministrarEditServlet", {
            op:"4",
            id:manual.id
        }, function(data){            
            data.op="editar";
            mostrar_campos(data);
            formularioManual();
        })
        return false;
    })

    $("<td/>").append(aEditar).append(aBorrar).appendTo(tr)

}


function editar(id){
    $.getJSON("/salus/AdministrarEditServlet", {
            op:"4",
            id:id
        }, function(data){            
            data.op="editar";
            mostrar_campos(data);
            formularioManual();
        })
}


/*Llena el formulario de edicion con los datos retornados via json*/
function mostrar_campos(manual){
    $("#op").val(manual.op)
    $("#id").val(manual.id)
    $("#codigo").val(manual.codigo)
    $("#descripcion").val(manual.descripcion)
    $("#id_manual_base").val(manual.id_manual_base)
    $("label.error").remove()
}


/*Trae los datos de la base de datos en un objeto json*/
function cargar_manual(){
    $.getJSON("/salus/AdministrarServlet", {
        op:"4",
        cod:$("#buscarCod").val(),
        des:$("#buscarDes").val()        
    }, function(data){
        $.each(data, function(i,item){
            add_manual(item)
        })
        $("#tabla-manual").addClass("tablesorter").tablesorter({
            widthFixed: true,
            widgets: ['zebra']
        }).tablesorterPager({
            container: $("#pager")
            })
    })
}


/*gestiona la busqueda de datos en la grilla, por codigo y descripcion*/
function buscar_manual(){

    if($("#buscarCod").val()==""&&$("#buscarDes").val()==""){
        window.location.reload();
    }else{
    $("#tabla-manual-body tr").remove();
    $("#tabla-manual colgroup").remove();
    $.getJSON("/salus/AdministrarServlet", {
        op:"4",
        cod:$("#buscarCod").val(),
        des:$("#buscarDes").val()        
    }, function(data){
        
        if(data.length>0){
        $.each(eval(data), function(i,item){
            add_manual(item)
        })
        $("#tabla-manual").addClass("tablesorter").tablesorter({
            widthFixed: true,
            widgets: ['zebra']
        }).tablesorterPager({
            container: $("#pager")
            })
        }else{
            alert('No se encontraron registros')
        }
    
    

    })

    }
}


function validarNumero(){
    var numero = $("#codigo").val();
    
    jQuery.ajax({
        type: "POST",
        url: "/salus/ValidarFormularioServlet",
        data: "op=7&num="+numero,
        dataType: 'json',
        success: function(msg){
            
            if(msg.error=='1'){
                $("#error_num").html("<b style='color:orange'>El codigo ya existe</b>");
                $("#codigo").val("")
                $("#codigo").focus();
            }else{
                $("#error_num").html("");
                guardar_manual()
            }
        }

        });
}

/*clarea los datos del formulario de busqueda*/
function limpiarBusqueda(){
    $("#buscarCod").val("");
    $("#buscarDes").val("");
}


function clear_form_elements(ele) {

    $(ele).find(':input').each(function() {
        switch(this.type) {
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'file':
            case 'textarea':
                $(this).val('');
                break;
            case 'checkbox':
            case 'radio':
                this.checked = false;
        }
    });

}